package com.loong.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.loong.system.entity.File;
import org.thciwei.x.file.storage.core.FileInfo;

/**
 * @author 47349
 * @description 针对表【sys_file(文件记录表)】的数据库操作Service
 * @createDate 2024-01-18 04:32:48
 */
public interface IFileService extends IService<File> {

  /**
   * 保存文件信息到数据库
   *
   * @param info 文件信息
   * @return bool
   */
  boolean save(FileInfo info);

  /**
   * 根据 url 查询文件信息
   *
   * @param url 路径
   * @return 文件信息
   */
  FileInfo getByUrl(String url);

  /**
   * 根据 url 删除文件信息
   *
   * @param url 路径
   * @return bool
   */
  boolean delete(String url);

  /**
   * 通过id获取文件信息
   *
   * @param id
   * @return
   */
  FileInfo getByIdItem(String id) throws JsonProcessingException;

  /**
   * 自动注入字典值
   *
   * @param e
   * @param <E>
   */
  <E> void transfer(E e);

  /**
   * 自动注入字典值
   *
   * @param e
   * @param <E>
   */
  <E> void transfer(Page<E> e);
}
